<script>
  // let data = [
  //   { name: "张三", age: 18 },
  //   { name: "李四", age: 28 },
  //   { name: "王五", age: 38 }
  // ]

  // function transData(sourceData) {
  //   // 编写处理逻辑
  //   // 返回一个由原数组中的所有value组成的新数组
  //   // 新数组组成的大数组
  //   const newArr = []
  //   // 拿到原数组中所有的value组成的新数组
  //   sourceData.forEach(item => {
  //     newArr.push(Object.values(item))// ['张三',18] ['李四',28]..
  //   })
  //   return newArr
  // }

  // console.log(transData(data))

  let sourceData = [
    { name: "张三", age: 18, height: 180 },
    { name: "李四", age: 28, height: 160 },
    { name: "王五", age: 38, height: 170 }
  ]

  function tranData(sourceData, header) {
    const newArr = []

    // 处理逻辑
    // 根据header中的字段 去sourceData中的每一项中去匹配
    // 符合条件的项 对应的value拿出来 放到一个数组中 然后把这个数组push到newArr

    sourceData.forEach((item)=>{
       // item  ->  { name: "张三", age: 18, height: 180 }
       // 遍历对象
       // 这个数组是二维大数组中的小数组
       let arr = []
       // 这个遍历是进行筛选往小数组中填充符合数据的项
       Object.keys(item).forEach(key=>{
         // key -> name / age / height
         if(header.includes(key)){
           // 当前符合条件
           arr.push(item[key])
         }
       })  // ['name','age','height']
       // 是把处理之后的小数组添加到二维的大数组中
       newArr.push(arr)
    })
  

    return newArr
  }

  console.log(tranData(sourceData,['name']))
</script>